package com.aep.provisioning.dao;

import java.math.BigDecimal;
import java.util.List;

import com.aep.provisioning.domain.EspRateCode;

public interface EspRateCodeDAO{
	
	List<EspRateCode> findListEspRateCodeMonthly(Long utilityID, String plan);
	List<EspRateCode> findStandardERateCodekWhRate(Long utilityID, String plan,BigDecimal monthly);
	List<EspRateCode> findStandardERateCodekWRate(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate);
	EspRateCode findStandardERateCode(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate,BigDecimal kWRate);
	List<EspRateCode> findSeasonalERateCodeSummerkWh(Long utilityID, String plan,BigDecimal monthly);
	List<EspRateCode> findSeasonalERateCodeNonSummerkWh(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate);
	List<EspRateCode> findSeasonalERateCodekW(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate,BigDecimal nonSummerKWhRate);
	EspRateCode findSeasonalERateCode(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate,BigDecimal nonSummerKWhRate,BigDecimal kWRate);
	List<EspRateCode> findListDiscount(Long utilityID, String plan);
	EspRateCode findDiscountERateCode(Long utilityID, String plan,BigDecimal discountAmount);
	EspRateCode findEspRateCode(Long utilityID,String rateCode);
	EspRateCode findStandardERateCodeMostNear(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate,BigDecimal kWRate);
	EspRateCode findEspRateCodeByPrice(Long utilityId, BigDecimal price);
	
}
